<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
    <style>
        .fade-enter-active,
        .fade-leave-active {
            transition: opacity 1.5s;
        }

        .fade-enter,
        .fade-leave-to {
            opacity: 0;
        }
    </style>
</head>

<body>
    <div id="app">
        <label for="">序号</label>
        <input v-model="tmpId" placeholder="请输入序号">
        <p>序号: {{ tmpId }}</p>

        <label for="">姓名</label>
        <input v-model="tmpName" placeholder="请输入姓名">
        <p>姓名: {{ tmpName }}</p>

        <button v-on:click="add">添加</button>

        <h1>基础列表渲染</h1>
        <ul id="example-1">
        <transition-group name="fade" >
            <li v-for="(item, index) in list" :key="item.id" @click="edit(index)">
                序号: {{ item.id }} --- 姓名： {{ item.name }}
                <button @click.stop="deleteItem(index)">删除</button>
            </li>
        </transition-group>
    </ul>
    </div>
    <script type="text/javascript">
        new Vue({
            el: "#app",
            data: {
                //临时变量，用于接收用户输入的值
                tmpId: '',
                tmpName: '',
                list: [
                    { id: 1, name: '张三' },
                    { id: 2, name: '李四' },
                    { id: 3, name: '王五' },
                    { id: 4, name: '赵四' },
                ],
            },
            methods: {
                add() {
                    //数组添加元素 push(),方法
                    this.list.push({ id: this.tmpId, name: this.tmpName });
                },
                deleteItem(index) {
                    //数组删除元素 splice(),方法
                    this.list.splice(index, 1);
                },
                edit(index){
                    const newName = prompt('请输入新的名字', this.list[index].name)
                    if(newName){
                        this.list[index].name = newName;
                    }

                }
            },
        });
    </script>
</body>

</html>